home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1980-01-01 | 2.9 KB | 60 lines |
- 30000 ROW = 20 : COLUMN = 20 : LENGTH = 20
- 30010 CLS
- 30020 GOSUB 30330
- 30030 PRINT B$
- 30040 STOP
- 30050 '**********************************************************************
- 30060 '** INPUT SUBROUTINE VERS 1.1 JUNE 20, 1982 **
- 30070 '** **
- 30080 '** FOR THIS SUBROUTINE, GIVE THE ROW AND COLUMN WHERE YOU WOULD **
- 30090 '** LIKE THE INPUT TO APPEAR ON THE SCREEN, AND THE MAXIMUM LENGTH **
- 30100 '** OF THE INPUT STRING. THEN GOSUB 30330 (OR WHAT YOU RENUM IT TO) **
- 30110 '** **
- 30120 '** THIS PROGRAM WILL PRINT -LENGTH- # OF SMALL SQUARES AT THE **
- 30130 '** GIVEN LOCATION IN THIS FORM <UNK! {FEFE}><UNK! {FEFE}><UNK! {FEFE}><UNK! {FEFE}><UNK! {FEFE}><UNK! {FE20}> , AND THEN START **
- 30140 '** ACCEPTING INPUT FROM THE KEYBOARD. AS YOU TYPE IN THE DATA, **
- 30150 '** IT WILL OVERLAY THE SMALL SQUARES IN THIS FASHION - **
- 30160 '** **
- 30170 '** SMITH<UNK! {FEFE}><UNK! {FEFE}><UNK! {FEFE}> **
- 30180 '** **
- 30190 '** AS INPUT OF A LAST NAME. AT ANY TIME YOU MAY - **
- 30200 '** (1) TYPE MORE LETTERS UP TO THE LIMIT SET BY 'LENGTH' **
- 30210 '** (2) BACKSPACE BY USE OF THE BACK-ARROW KEY (TO CORRECT ERRORS) **
- 30220 '** (3) FINISH BY HITING THE 'RETURN' KEY **
- 30230 '** **
- 30240 '** THE PROGRAM WILL NOT LET YOU CREATE AN INPUT LONGER THAN **
- 30250 '** LENGTH OR BACKSPACE TO BEFORE THE FIRST CHARACTER **
- 30260 '** **
- 30270 '** IF YOU ENTERED AN ANSWER TO THE POINT ILLISTRATED ABOVE, **
- 30280 '** AND THEN HIT 'RETURN', THE SUBROUTINE WILL RETURN TO THE MAIN **
- 30290 '** WITH THE INPUT IN B$. EG. B$ = "SMITH" NOT "SMITH<UNK! {FEFE}><UNK! {FEFE}><UNK! {FEFE}>" **
- 30300 '** **
- 30310 '**********************************************************************
- 30320 '
- 30330 B$ = ""
- 30340 FOR X = 1 TO LENGTH
- 30350 B$ = B$ + CHR$(254)
- 30360 NEXT X
- 30370 LOCATE ROW,COLUMN
- 30380 PRINT B$;
- 30390 '
- 30400 '
- 30410 '
- 30420 POINTER = 1 : A$ = " "
- 30430 WHILE (ASC(A$) <> 13)
- 30440 A$ = INPUT$(1)
- 30450 IF (POINTER > LENGTH) AND (ASC(A$) = 13) THEN 30570
- 30460 IF (POINTER > LENGTH) AND (ASC(A$) = 8) THEN 30520
- 30470 IF (POINTER > LENGTH) THEN 30570
- 30480 IF (ASC(A$) >= 32) THEN MID$(B$,POINTER,1) = A$ : POINTER = POINTER + 1 : GOTO 30550
- 30490 IF (POINTER = 1) AND (ASC(A$) = 8) GOTO 30550
- 30500 IF (ASC(A$) <> 8) THEN 30540
- 30510 MID$(B$,POINTER,1) = CHR$(254)
- 30520 MID$(B$,POINTER-1,1) = CHR$(254)
- 30530 POINTER = POINTER -1
- 30540 IF (ASC(A$) = 13) THEN B$ = MID$(B$,1,POINTER-1) : POINTER = LENGTH + 1
- 30550 LOCATE ROW,COLUMN
- 30560 PRINT B$
- 30570 WEND
- 30580 RETURN
-